package com.assignwork.service;

import com.assignwork.dto.AssignWorkDTO;
import com.assignwork.dto.LineAuditDTO;
import com.assignwork.dto.WorkArrangeLandSearchDTO;
import com.assignwork.dto.WorkArrangeLandSubmitDTO;
import com.assignwork.entity.WorkArrangeLand;
import com.assignwork.vo.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.secure.BladeUser;

import java.util.List;

/**
 * @ClassName IWorkArrangeLandService
 * @Description 陆运配工接口
 * @Author dujianyu
 * @Date 2023/12/18 8:28
 */
public interface IWorkArrangeLandService extends BaseService<WorkArrangeLand> {
    
    /** 
     * 新增或修改
     * @param dto 数据 
     * @return boolean 
     * @author dujianyu
     * @since 2023/12/18 9:08
     */ 
    boolean submitWaLand(WorkArrangeLandSubmitDTO dto);

    /** 
     * 分页
     * @param dto 搜索条件
     * @param page 分页
     * @return WorkArrangeLandPageVO
     * @author dujianyu
     * @since 2023/12/18 9:10
     */
    WorkArrangeLandPageVO selectWaLandPage(WorkArrangeLandSearchDTO dto, IPage<WorkArrangeLandListVO> page);

    /**
     * 级联删除
     * @param id 主键ID
     * @return boolean
     * @author dujianyu
     * @since 2023/12/18 9:23
     */
    boolean removeWaLand(Long id);

    /** 
     * 从之前导入
     * @param dto 搜索条件
     * @return boolean
     * @author dujianyu
     * @since 2024/1/12 13:59
     */ 
    boolean importFromPrevious(WorkArrangeLandSearchDTO dto);

    IPage<WorkArrangeLandVO> pageWorkArrangeLand(BladeUser bladeUser, IPage<WorkArrangeLandVO> page, AssignWorkDTO dto);

    List<WorkArrangeLandMobileVO> listLandWorkArrangeMobile(IPage page, LineAuditDTO dto);

    WorkArrangeLandInfoVO arrangeInfoLandByArrangeId(Long arrangeId);
}
